﻿// Decompiled with JetBrains decompiler
// Type: DnProcessSimulateCommands.JointVariableLimitsEditor.CUiJVLEditorViewModelSettings
// Assembly: DnProcessSimulateCommands, Version=2402.0.0.890, Culture=neutral, PublicKeyToken=null
// MVID: A885D881-AEDF-447E-852A-6F13102E089C
// Assembly location: C:\Program Files\Tecnomatix_2402\eMPower\DotNetCommands\DnProcessSimulateCommands.dll

using System.Drawing;
using UiInternalControls.WindowsFormsControls.GraphEnums;


namespace DnProcessSimulateCommands.JointVariableLimitsEditor;

internal class CUiJVLEditorViewModelSettings
{
  private CUiJVLEditorViewModelSettings.GraphSettings _graph;
  private CUiJVLEditorViewModelSettings.GridSettings _grid;
  private double _splitterPosRatio;

  internal CUiJVLEditorViewModelSettings()
  {
    this._graph = new CUiJVLEditorViewModelSettings.GraphSettings();
    this._grid = new CUiJVLEditorViewModelSettings.GridSettings();
    this._splitterPosRatio = 0.34;
  }

  internal CUiJVLEditorViewModelSettings(CUiJVLEditorViewModelSettings other)
  {
    this._graph = new CUiJVLEditorViewModelSettings.GraphSettings(other.Graph);
    this._grid = new CUiJVLEditorViewModelSettings.GridSettings(other.Grid);
    this._splitterPosRatio = other.SplitterPosRatio;
  }

  internal CUiJVLEditorViewModelSettings.GraphSettings Graph
  {
    get => this._graph;
    set => this._graph = value;
  }

  internal CUiJVLEditorViewModelSettings.GridSettings Grid
  {
    get => this._grid;
    set => this._grid = value;
  }

  internal double SplitterPosRatio
  {
    get => this._splitterPosRatio;
    set => this._splitterPosRatio = value;
  }

  internal class GraphSettings
  {
    private PointShapeType _regularPointShape;
    private Color _regularPointColor;
    private PointShapeType _selectedPointShape;
    private Color _selectedPointColor;
    private LineType _lineType;
    private Color _lineColor;
    private Color _areaColor;

    internal GraphSettings()
    {
      this._regularPointShape = (PointShapeType) 5;
      this._regularPointColor = Color.FromArgb(0, 0, (int) byte.MaxValue);
      this._selectedPointShape = (PointShapeType) 5;
      this._selectedPointColor = Color.FromArgb(0, (int) byte.MaxValue, 0);
      this._lineType = (LineType) 0;
      this._lineColor = Color.FromArgb(0, 0, (int) byte.MaxValue);
      this._areaColor = Color.FromArgb(128 /*0x80*/, 128 /*0x80*/, (int) byte.MaxValue);
    }

    internal GraphSettings(CUiJVLEditorViewModelSettings.GraphSettings other)
    {
      this._regularPointShape = other._regularPointShape;
      this._regularPointColor = other._regularPointColor;
      this._selectedPointShape = other._selectedPointShape;
      this._selectedPointColor = other._selectedPointColor;
      this._lineType = other._lineType;
      this._lineColor = other._lineColor;
      this._areaColor = other._areaColor;
    }

    internal PointShapeType RegularPointShape
    {
      get => this._regularPointShape;
      set => this._regularPointShape = value;
    }

    internal Color RegularPointColor
    {
      get => this._regularPointColor;
      set => this._regularPointColor = value;
    }

    internal PointShapeType SelectedPointShape
    {
      get => this._selectedPointShape;
      set => this._selectedPointShape = value;
    }

    internal Color SelectedPointColor
    {
      get => this._selectedPointColor;
      set => this._selectedPointColor = value;
    }

    internal LineType LineType
    {
      get => this._lineType;
      set => this._lineType = value;
    }

    internal Color LineColor
    {
      get => this._lineColor;
      set => this._lineColor = value;
    }

    internal Color AreaColor
    {
      get => this._areaColor;
      set => this._areaColor = value;
    }
  }

  internal class GridSettings
  {
    private double _nColumnWidthRatio;
    private double _xColumnWidthRatio;
    private double _yColumnWidthRatio;

    internal GridSettings()
    {
      this._nColumnWidthRatio = 0.1;
      this._xColumnWidthRatio = 0.45;
      this._yColumnWidthRatio = 0.45;
    }

    internal GridSettings(CUiJVLEditorViewModelSettings.GridSettings other)
    {
      this._nColumnWidthRatio = other._nColumnWidthRatio;
      this._xColumnWidthRatio = other._xColumnWidthRatio;
      this._yColumnWidthRatio = other._yColumnWidthRatio;
    }

    internal double NColumnWidthRatio
    {
      get => this._nColumnWidthRatio;
      set => this._nColumnWidthRatio = value;
    }

    internal double XColumnWidthRatio
    {
      get => this._xColumnWidthRatio;
      set => this._xColumnWidthRatio = value;
    }

    internal double YColumnWidthRatio
    {
      get => this._yColumnWidthRatio;
      set => this._yColumnWidthRatio = value;
    }
  }
}
